<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CryptoAuthLib: atca_basic.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">CryptoAuthLib
   </div>
   <div id="projectbrief">Microchip CryptoAuthentication Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a00224_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">atca_basic.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="a00224.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00359.html">cryptoauthlib.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00344.html">crypto/atca_crypto_sw_sha2.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#ifndef ATCA_BASIC_H_</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#define ATCA_BASIC_H_</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="a00991.html#ga66d0b18bba952f5acdee8cf68b889b75">   47</a></span>&#160;<span class="preprocessor">#define BLOCK_NUMBER(a)             (a / 32)</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="a00991.html#ga9e5ab0fea07bd91159ab96f18105d1b1">   48</a></span>&#160;<span class="preprocessor">#define WORD_OFFSET(a)              ((a % 32) / 4)</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="a00991.html#gad4d0b05dd9b5d0987e24eef9674922ce">   50</a></span>&#160;<span class="preprocessor">#define ATCA_AES_GCM_IV_STD_LENGTH      12</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keyword">extern</span> <a class="code" href="a01009.html">ATCADevice</a> <a class="code" href="a00991.html#ga692423e9c45adde594c36360756b8882">_gDevice</a>;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">// Basic global methods</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gaff701132013eaac5600dd9fd6253505d">atcab_version</a>(<span class="keywordtype">char</span> *ver_str);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gacdc4fa3d2f2f6d197af8c10ab1f288b8">atcab_init</a>(<a class="code" href="a01013.html">ATCAIfaceCfg</a> *cfg);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gab22d2a32e6c32c14c4e58ce794ff3ec4">atcab_init_device</a>(<a class="code" href="a01009.html">ATCADevice</a> ca_device);</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga3a061c1f96bb641b36fc56b6cb2dd4e4">atcab_release</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<a class="code" href="a01009.html">ATCADevice</a> <a class="code" href="a00991.html#ga4af82005556c549c30e1c4bd35d4f4e4">atcab_get_device</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<a class="code" href="a00988.html#gafb234ccd6a80d09c0efbe336c2354267">ATCADeviceType</a> <a class="code" href="a00991.html#ga2b02163fab87313b81dd7f51345d3eb6">atcab_get_device_type</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga5802cd6847a837458604db5dbec4a6f0">_atcab_exit</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gad3bc620aedd9322d160eece0d8d20c82">atcab_wakeup</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gaf47433a371b9fcb8d65a4214cd9e4fa0">atcab_idle</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga9475e032c388144c5a0df45d1df182a5">atcab_sleep</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga1518196e269b549eec78087abd130de7">atcab_cfg_discover</a>(<a class="code" href="a01013.html">ATCAIfaceCfg</a> cfg_array[], <span class="keywordtype">int</span> <a class="code" href="a00993.html#gaffe776513b24d84b39af8ab0930fef7f">max</a>);</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gabdfeb1f8d28039e9b30d4e39b8caa33a">atcab_get_addr</a>(uint8_t zone, uint16_t slot, uint8_t block, uint8_t offset, uint16_t* addr);</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga7a823d2a391bf80ff336eb2ccbd37412">atcab_get_zone_size</a>(uint8_t zone, uint16_t slot, <span class="keywordtype">size_t</span>* size);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">// AES command functions</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gad115ce255664a48b80e90ea19c156b79">atcab_aes</a>(uint8_t mode, uint16_t key_id, <span class="keyword">const</span> uint8_t* aes_in, uint8_t* aes_out);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gacc9a58dc49f91674213f34fa7bbd05e1">atcab_aes_encrypt</a>(uint16_t key_id, uint8_t key_block, <span class="keyword">const</span> uint8_t* plaintext, uint8_t* ciphertext);</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga9658e84055727e6357cf7ef636b4e398">atcab_aes_decrypt</a>(uint16_t key_id, uint8_t key_block, <span class="keyword">const</span> uint8_t* ciphertext, uint8_t* plaintext);</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga5554940ed4c7c7e28652ce6923cf9314">atcab_aes_gfm</a>(<span class="keyword">const</span> uint8_t* h, <span class="keyword">const</span> uint8_t* input, uint8_t* output);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a01069.html">   76</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01069.html">atca_aes_cbc_ctx</a></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="a01069.html#ac21eed4200889cc115d16a781871d01c">   78</a></span>&#160;    uint16_t <a class="code" href="a01069.html#ac21eed4200889cc115d16a781871d01c">key_id</a>;                     </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a01069.html#a2ec310210422989027a46428a61fb1c1">   79</a></span>&#160;    uint8_t  <a class="code" href="a01069.html#a2ec310210422989027a46428a61fb1c1">key_block</a>;                  </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="a01069.html#a984a9b23546b1bab664b3a3e721830b7">   80</a></span>&#160;    uint8_t  <a class="code" href="a01069.html#a984a9b23546b1bab664b3a3e721830b7">ciphertext</a>[<a class="code" href="a00987.html#ga8cbce00b91b0ddfb3264c9c367a3699a">AES_DATA_SIZE</a>];  </div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;} <a class="code" href="a00991.html#gaa702726fe160635225abc3c1ed421f7e">atca_aes_cbc_ctx_t</a>;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gabc41b824cdc9b10efa46bcbf74850184">atcab_aes_cbc_init</a>(<a class="code" href="a01069.html">atca_aes_cbc_ctx_t</a>* ctx, uint16_t key_id, uint8_t key_block, <span class="keyword">const</span> uint8_t* iv);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga7414e3dc8215cedc1bffc6cf576d7d1e">atcab_aes_cbc_encrypt_block</a>(<a class="code" href="a01069.html">atca_aes_cbc_ctx_t</a>* ctx, <span class="keyword">const</span> uint8_t* plaintext, uint8_t* ciphertext);</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga7c66e1b8b31bb87be3de6c9a9084c21e">atcab_aes_cbc_decrypt_block</a>(<a class="code" href="a01069.html">atca_aes_cbc_ctx_t</a>* ctx, <span class="keyword">const</span> uint8_t* ciphertext, uint8_t* plaintext);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="a01073.html">   87</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01073.html">atca_aes_cmac_ctx</a></div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="a01073.html#a9246ae6d7229247b3e9b5e540a26ac05">   89</a></span>&#160;    <a class="code" href="a01069.html">atca_aes_cbc_ctx_t</a> <a class="code" href="a01073.html#a9246ae6d7229247b3e9b5e540a26ac05">cbc_ctx</a>;              </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="a01073.html#a9e3fb1e50a1c71b2337df296222d9553">   90</a></span>&#160;    uint32_t           <a class="code" href="a01073.html#a9e3fb1e50a1c71b2337df296222d9553">block_size</a>;           </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="a01073.html#adae27798b73271394b86837502dfd853">   91</a></span>&#160;    uint8_t            <a class="code" href="a01073.html#adae27798b73271394b86837502dfd853">block</a>[<a class="code" href="a00987.html#ga8cbce00b91b0ddfb3264c9c367a3699a">AES_DATA_SIZE</a>]; </div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;} <a class="code" href="a00991.html#ga05fa8c58bf4408381db8871b0dca64b6">atca_aes_cmac_ctx_t</a>;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga84506ff4105e63823c99527788d36d52">atcab_aes_cmac_init</a>(<a class="code" href="a01073.html">atca_aes_cmac_ctx_t</a>* ctx, uint16_t key_id, uint8_t key_block);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga0cf22e893c713890faeb9fa8784760b1">atcab_aes_cmac_update</a>(<a class="code" href="a01073.html">atca_aes_cmac_ctx_t</a>* ctx, <span class="keyword">const</span> uint8_t* data, uint32_t data_size);</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gac0be51b283b107465dcf42758ca31687">atcab_aes_cmac_finish</a>(<a class="code" href="a01073.html">atca_aes_cmac_ctx_t</a>* ctx, uint8_t* cmac, uint32_t cmac_size);</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="a01077.html">   98</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01077.html">atca_aes_ctr_ctx</a></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a01077.html#ac21eed4200889cc115d16a781871d01c">  100</a></span>&#160;    uint16_t <a class="code" href="a01077.html#ac21eed4200889cc115d16a781871d01c">key_id</a>;             </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="a01077.html#a2ec310210422989027a46428a61fb1c1">  101</a></span>&#160;    uint8_t  <a class="code" href="a01077.html#a2ec310210422989027a46428a61fb1c1">key_block</a>;          </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="a01077.html#a5af729786916ea6a413d85fb8bba87f1">  102</a></span>&#160;    uint8_t  <a class="code" href="a01077.html#a5af729786916ea6a413d85fb8bba87f1">cb</a>[<a class="code" href="a00987.html#ga8cbce00b91b0ddfb3264c9c367a3699a">AES_DATA_SIZE</a>];  </div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="a01077.html#ab645bb8a04ce16b6ab3c843dd4d1c177">  103</a></span>&#160;    uint8_t  <a class="code" href="a01077.html#ab645bb8a04ce16b6ab3c843dd4d1c177">counter_size</a>;       </div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;}<a class="code" href="a00991.html#ga52b18f051752d214a2d5b485270f5b15">atca_aes_ctr_ctx_t</a>;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga0db7d24f31dc2dd4805e3c433ae604ad">atcab_aes_ctr_init</a>(<a class="code" href="a01077.html">atca_aes_ctr_ctx_t</a>* ctx, uint16_t key_id, uint8_t key_block, uint8_t counter_size, <span class="keyword">const</span> uint8_t* iv);</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gae7558905ea6a82c4bd50d4b99e954d91">atcab_aes_ctr_init_rand</a>(<a class="code" href="a01077.html">atca_aes_ctr_ctx_t</a>* ctx, uint16_t key_id, uint8_t key_block, uint8_t counter_size, uint8_t* iv);</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga76937b340e59be4dc1a30d8c7b76ebe0">atcab_aes_ctr_block</a>(<a class="code" href="a01077.html">atca_aes_ctr_ctx_t</a>* ctx, <span class="keyword">const</span> uint8_t* input, uint8_t* output);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga7182e48a847f9c1b31f19c60f373e2da">atcab_aes_ctr_encrypt_block</a>(<a class="code" href="a01077.html">atca_aes_ctr_ctx_t</a>* ctx, <span class="keyword">const</span> uint8_t* plaintext, uint8_t* ciphertext);</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gada9491be0c81fb18b021f71b9a6eda3e">atcab_aes_ctr_decrypt_block</a>(<a class="code" href="a01077.html">atca_aes_ctr_ctx_t</a>* ctx, <span class="keyword">const</span> uint8_t* ciphertext, uint8_t* plaintext);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga475b72450dcd21c822de5cb366197927">atcab_aes_ctr_increment</a>(<a class="code" href="a01077.html">atca_aes_ctr_ctx_t</a>* ctx);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="comment">// CheckMAC command functions</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga5ba49c05f7b3fb5acaf55df993ccd3ee">atcab_checkmac</a>(uint8_t mode, uint16_t key_id, <span class="keyword">const</span> uint8_t *challenge, <span class="keyword">const</span> uint8_t *response, <span class="keyword">const</span> uint8_t *other_data);</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="comment">// Counter command functions</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gabaaaef242649206029e1c10ac6d1fb7d">atcab_counter</a>(uint8_t mode, uint16_t counter_id, uint32_t* counter_value);</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga6e510e056ea16a0a34b405b7ca378f16">atcab_counter_increment</a>(uint16_t counter_id, uint32_t* counter_value);</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gaeee666028a097659af69cc828a6bd68b">atcab_counter_read</a>(uint16_t counter_id, uint32_t* counter_value);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment">// DeriveKey command functions</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga34b7b6d46868f0d63d195216ef9939b1">atcab_derivekey</a>(uint8_t mode, uint16_t key_id, <span class="keyword">const</span> uint8_t* mac);</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="comment">// ECDH command functions</span></div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga211c9405bb5049dd4a5da92d25c83f3c">atcab_ecdh_base</a>(uint8_t mode, uint16_t key_id, <span class="keyword">const</span> uint8_t* public_key, uint8_t* pms, uint8_t* out_nonce);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga6fc480ad2824df6309f4f370ffad15f9">atcab_ecdh</a>(uint16_t key_id, <span class="keyword">const</span> uint8_t* public_key, uint8_t* pms);</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gab6e0c175cbcb5f794b12a8ec22485176">atcab_ecdh_enc</a>(uint16_t key_id, <span class="keyword">const</span> uint8_t* public_key, uint8_t* pms, <span class="keyword">const</span> uint8_t* read_key, uint16_t read_key_id);</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga975f7303086190d3b6f76c367583d622">atcab_ecdh_ioenc</a>(uint16_t key_id, <span class="keyword">const</span> uint8_t* public_key, uint8_t* pms, <span class="keyword">const</span> uint8_t* io_key);</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gac244b83b061ffd8ae3d59b5f973baa53">atcab_ecdh_tempkey</a>(<span class="keyword">const</span> uint8_t* public_key, uint8_t* pms);</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gafaccb0c9d12154b0c5b917f89f233721">atcab_ecdh_tempkey_ioenc</a>(<span class="keyword">const</span> uint8_t* public_key, uint8_t* pms, <span class="keyword">const</span> uint8_t* io_key);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="comment">// GenDig command functions</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga70751ea87f2cf913986bc7bca2cc661f">atcab_gendig</a>(uint8_t zone, uint16_t key_id, <span class="keyword">const</span> uint8_t *other_data, uint8_t other_data_size);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment">// GenKey command functions</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gaa8b6953ad2c7f749e61566fd38fe6903">atcab_genkey_base</a>(uint8_t mode, uint16_t key_id, <span class="keyword">const</span> uint8_t* other_data, uint8_t* public_key);</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga617bdbdce7b5736351d93214d44c5b8f">atcab_genkey</a>(uint16_t key_id, uint8_t* public_key);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gad2096a4618dd37c48ed48847fe63d844">atcab_get_pubkey</a>(uint16_t key_id, uint8_t* public_key);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="comment">// HMAC command functions</span></div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga45f1d09a51f7a1f68916536ab5125b9d">atcab_hmac</a>(uint8_t mode, uint16_t key_id, uint8_t* digest);</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="comment">// Info command functions</span></div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga806d07982fda5c30755af6b5b4ef9314">atcab_info_base</a>(uint8_t mode, uint16_t param2, uint8_t* out_data);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga6e19ecd60be4c74665d9ec142e460771">atcab_info</a>(uint8_t* revision);</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga2649126606db8a0b64ae8e19d09f6600">atcab_info_set_latch</a>(<span class="keywordtype">bool</span> state);</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga376b6ae92f14c60fba4ca5c6461e0b48">atcab_info_get_latch</a>(<span class="keywordtype">bool</span>* state);</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="comment">// KDF command functions</span></div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga40a6c01492a76366f9402302b527c4e1">atcab_kdf</a>(uint8_t mode, uint16_t key_id, <span class="keyword">const</span> uint32_t details, <span class="keyword">const</span> uint8_t* message, uint8_t* out_data, uint8_t* out_nonce);</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="comment">// Lock command functions</span></div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga25d2895192d93c524f5dba92a492cdfb">atcab_lock</a>(uint8_t mode, uint16_t summary_crc);</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga7cd67c03c7184ad041e2c0ad4f27db23">atcab_lock_config_zone</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga0698e0c55ad700fe57498321e842cb38">atcab_lock_config_zone_crc</a>(uint16_t summary_crc);</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga8020aa89a5bed09ad35320b78e0fb890">atcab_lock_data_zone</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gaf29e398e2aca927ab4606aa1ec0308c6">atcab_lock_data_zone_crc</a>(uint16_t summary_crc);</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga958190a9182d1b54f82fbca8216406ea">atcab_lock_data_slot</a>(uint16_t slot);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="comment">// MAC command functions</span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga98cb802fbb5d78cd552bb05c21d6c791">atcab_mac</a>(uint8_t mode, uint16_t key_id, <span class="keyword">const</span> uint8_t* challenge, uint8_t* digest);</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="comment">// Nonce command functions</span></div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gaf8e10791759a8a5e5dcd82774f4895d6">atcab_nonce_base</a>(uint8_t mode, uint16_t zero, <span class="keyword">const</span> uint8_t *num_in, uint8_t* rand_out);</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga2293df1c1c794496790bae25d3844fa5">atcab_nonce</a>(<span class="keyword">const</span> uint8_t *num_in);</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga2239ae3a87c341a48aa108bd82a58552">atcab_nonce_load</a>(uint8_t target, <span class="keyword">const</span> uint8_t *num_in, uint16_t num_in_size);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gaed67d447d547c67b7b8be6b958d1fb5c">atcab_nonce_rand</a>(<span class="keyword">const</span> uint8_t *num_in, uint8_t* rand_out);</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga114a721517c95d5ba5fcac5b226669d6">atcab_challenge</a>(<span class="keyword">const</span> uint8_t *num_in);</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gaadde4309089c569fd87c24a1a2326cd4">atcab_challenge_seed_update</a>(<span class="keyword">const</span> uint8_t *num_in, uint8_t* rand_out);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="comment">// PrivWrite command functions</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gad01e8e785073d8655de9116e7df8e7b5">atcab_priv_write</a>(uint16_t key_id, <span class="keyword">const</span> uint8_t priv_key[36], uint16_t write_key_id, <span class="keyword">const</span> uint8_t write_key[32]);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">// Random command functions</span></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga4fa442396dfbb89e59dfca837b565cec">atcab_random</a>(uint8_t* rand_out);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">// Read command functions</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga3ce01f02f456c08891ca1d67cd3ed0eb">atcab_read_zone</a>(uint8_t zone, uint16_t slot, uint8_t block, uint8_t offset, uint8_t *data, uint8_t len);</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gaefce484222bdbedef37787a9b10d4426">atcab_is_locked</a>(uint8_t zone, <span class="keywordtype">bool</span> *is_locked);</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga802de50265ff91dc30dd7c93d9e026e1">atcab_is_slot_locked</a>(uint16_t slot, <span class="keywordtype">bool</span> *is_locked);</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga750704332198726725a327344f4f7dd5">atcab_read_bytes_zone</a>(uint8_t zone, uint16_t slot, <span class="keywordtype">size_t</span> offset, uint8_t *data, <span class="keywordtype">size_t</span> length);</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga96c434878e1f435e2cda5b0b5fec444f">atcab_read_serial_number</a>(uint8_t* serial_number);</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga782ca1e5b1574b2b6793c841be22b28b">atcab_read_pubkey</a>(uint16_t slot, uint8_t *public_key);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga098c4c2c724b90b7e2f4ecf12b9530b7">atcab_read_sig</a>(uint16_t slot, uint8_t *sig);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga8ef47330eef6bc72ae8f7a8ef026dae3">atcab_read_config_zone</a>(uint8_t* config_data);</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gadb91d2c3601b95f0ad413cf84a4dfd87">atcab_cmp_config_zone</a>(uint8_t* config_data, <span class="keywordtype">bool</span>* same_config);</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga778a262b86fa1f8a38139cbae34376e4">atcab_read_enc</a>(uint16_t key_id, uint8_t block, uint8_t *data, <span class="keyword">const</span> uint8_t* enc_key, <span class="keyword">const</span> uint16_t enc_key_id);</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="comment">// SecureBoot command functions</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga9506331ea7d454fe3c9b2585128c77aa">atcab_secureboot</a>(uint8_t mode, uint16_t param2, <span class="keyword">const</span> uint8_t* digest, <span class="keyword">const</span> uint8_t* signature, uint8_t* mac);</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga5c11f2012a03ec79cb46de8e03ed0534">atcab_secureboot_mac</a>(uint8_t mode, <span class="keyword">const</span> uint8_t* digest, <span class="keyword">const</span> uint8_t* signature, <span class="keyword">const</span> uint8_t* num_in, <span class="keyword">const</span> uint8_t* io_key, <span class="keywordtype">bool</span>* is_verified);</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="comment">// SelfTest command functions</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gaeb4a36bc6992612cc3b1f950c0d020b7">atcab_selftest</a>(uint8_t mode, uint16_t param2, uint8_t* result);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="comment">// SHA command functions</span></div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="a01081.html">  197</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a01081.html">atca_sha256_ctx</a></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;{</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="a01081.html#a8ee7e642376903508dd6b4df9eacc2de">  199</a></span>&#160;    uint32_t <a class="code" href="a01081.html#a8ee7e642376903508dd6b4df9eacc2de">total_msg_size</a>;                     </div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="a01081.html#a9e3fb1e50a1c71b2337df296222d9553">  200</a></span>&#160;    uint32_t <a class="code" href="a01081.html#a9e3fb1e50a1c71b2337df296222d9553">block_size</a>;                         </div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="a01081.html#a407f9109b29f2f3a4c9f7d1de450ad41">  201</a></span>&#160;    uint8_t  <a class="code" href="a01081.html#a407f9109b29f2f3a4c9f7d1de450ad41">block</a>[<a class="code" href="a00987.html#ga85e0a506bd6fdae6ce32d5df3a48ac1c">ATCA_SHA256_BLOCK_SIZE</a> * 2];  </div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;} <a class="code" href="a00991.html#ga530ccce9f617be7dbf3661e19a4c0546">atca_sha256_ctx_t</a>;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="a00991.html#ga4c1f62e502c168be9261d2af921e78ba">  204</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="a01081.html">atca_sha256_ctx_t</a> <a class="code" href="a00991.html#ga4c1f62e502c168be9261d2af921e78ba">atca_hmac_sha256_ctx_t</a>;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gab3a32e171ca1c30bd31a216b32c9b5a4">atcab_sha_base</a>(uint8_t mode, uint16_t length, <span class="keyword">const</span> uint8_t* data_in, uint8_t* data_out, uint16_t* data_out_size);</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gae0a7ef89fce4cbd0ee1c76759cd93b9a">atcab_sha_start</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga39bd70baa7a4c7f4849fcf8b94d4d949">atcab_sha_update</a>(<span class="keyword">const</span> uint8_t* message);</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga1db86704035048066a370815b657234d">atcab_sha_end</a>(uint8_t *digest, uint16_t length, <span class="keyword">const</span> uint8_t *message);</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga74d1db50562642ce511fa7cbd384c2ab">atcab_sha_read_context</a>(uint8_t* context, uint16_t* context_size);</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga070fa80ac0d76f6816d9f7affbcfb120">atcab_sha_write_context</a>(<span class="keyword">const</span> uint8_t* context, uint16_t context_size);</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga31d269ccdafd08519a899a8aebf53df1">atcab_sha</a>(uint16_t length, <span class="keyword">const</span> uint8_t *message, uint8_t *digest);</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga4bf8b665fe1712626a480742c2daa16b">atcab_hw_sha2_256</a>(<span class="keyword">const</span> uint8_t * data, <span class="keywordtype">size_t</span> data_size, uint8_t* digest);</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gade49e7746864105730fa7d531645ff62">atcab_hw_sha2_256_init</a>(<a class="code" href="a01081.html">atca_sha256_ctx_t</a>* ctx);</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga67f2ce6224651d9cc65e9915e35558bd">atcab_hw_sha2_256_update</a>(<a class="code" href="a01081.html">atca_sha256_ctx_t</a>* ctx, <span class="keyword">const</span> uint8_t* data, <span class="keywordtype">size_t</span> data_size);</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga6ed7e645262fcc32b00d8a9facf09e91">atcab_hw_sha2_256_finish</a>(<a class="code" href="a01081.html">atca_sha256_ctx_t</a>* ctx, uint8_t* digest);</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga310a017cddce9ef05071cb619b4b6db9">atcab_sha_hmac_init</a>(<a class="code" href="a01081.html">atca_hmac_sha256_ctx_t</a>* ctx, uint16_t key_slot);</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gae3343c160e80365b7e96bdfdc9b6365c">atcab_sha_hmac_update</a>(<a class="code" href="a01081.html">atca_hmac_sha256_ctx_t</a>* ctx, <span class="keyword">const</span> uint8_t* data, <span class="keywordtype">size_t</span> data_size);</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gaa4be9972396b7cadb08dd8e2199daf08">atcab_sha_hmac_finish</a>(<a class="code" href="a01081.html">atca_hmac_sha256_ctx_t</a>* ctx, uint8_t* digest, uint8_t target);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gae655ce06583c08169170102fbb0b55c9">atcab_sha_hmac</a>(<span class="keyword">const</span> uint8_t * data, <span class="keywordtype">size_t</span> data_size, uint16_t key_slot, uint8_t* digest, uint8_t target);</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment">// Sign command functions</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga5c1e598bf3d4d25b522f42d6038a4268">atcab_sign_base</a>(uint8_t mode, uint16_t key_id, uint8_t *signature);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga69b8282d1b1e0c54b9a7d286fed503b8">atcab_sign</a>(uint16_t key_id, <span class="keyword">const</span> uint8_t *msg, uint8_t *signature);</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga559add3e8b4f85a9d91fc0ed86aefa29">atcab_sign_internal</a>(uint16_t key_id, <span class="keywordtype">bool</span> is_invalidate, <span class="keywordtype">bool</span> is_full_sn, uint8_t *signature);</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="comment">// UpdateExtra command functions</span></div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga416e4aeacf3acc35b1d5b76028c6947d">atcab_updateextra</a>(uint8_t mode, uint16_t new_value);</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="comment">// Verify command functions</span></div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga694d921c7bc17a0e158ef96e3d476700">atcab_verify</a>(uint8_t mode, uint16_t key_id, <span class="keyword">const</span> uint8_t* signature, <span class="keyword">const</span> uint8_t* public_key, <span class="keyword">const</span> uint8_t* other_data, uint8_t* mac);</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga2c3e18de900ba705192963d08b37f600">atcab_verify_extern</a>(<span class="keyword">const</span> uint8_t *message, <span class="keyword">const</span> uint8_t *signature, <span class="keyword">const</span> uint8_t *public_key, <span class="keywordtype">bool</span> *is_verified);</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga17bf17c4786be097a0bb111a6f9d8ca6">atcab_verify_extern_mac</a>(<span class="keyword">const</span> uint8_t *message, <span class="keyword">const</span> uint8_t* signature, <span class="keyword">const</span> uint8_t* public_key, <span class="keyword">const</span> uint8_t* num_in, <span class="keyword">const</span> uint8_t* io_key, <span class="keywordtype">bool</span>* is_verified);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gae8cc7670847805423ad591985eecd832">atcab_verify_stored</a>(<span class="keyword">const</span> uint8_t *message, <span class="keyword">const</span> uint8_t *signature, uint16_t key_id, <span class="keywordtype">bool</span> *is_verified);</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gaa52cdbbfd2f089d8eb42ef2640204ca7">atcab_verify_stored_mac</a>(<span class="keyword">const</span> uint8_t *message, <span class="keyword">const</span> uint8_t *signature, uint16_t key_id, <span class="keyword">const</span> uint8_t* num_in, <span class="keyword">const</span> uint8_t* io_key, <span class="keywordtype">bool</span>* is_verified);</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gacf9a0c7772ebb65b87c4a4788850702b">atcab_verify_validate</a>(uint16_t key_id, <span class="keyword">const</span> uint8_t *signature, <span class="keyword">const</span> uint8_t *other_data, <span class="keywordtype">bool</span> *is_verified);</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga9393b545b2fa1fdd539672a0428a30ab">atcab_verify_invalidate</a>(uint16_t key_id, <span class="keyword">const</span> uint8_t *signature, <span class="keyword">const</span> uint8_t *other_data, <span class="keywordtype">bool</span> *is_verified);</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="comment">// Write command functions</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gabf2b29b4d3ae926b63c403d084380dbe">atcab_write</a>(uint8_t zone, uint16_t address, <span class="keyword">const</span> uint8_t *value, <span class="keyword">const</span> uint8_t *mac);</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga1f5a6bbcf4f840803635fb8951b3a7e2">atcab_write_zone</a>(uint8_t zone, uint16_t slot, uint8_t block, uint8_t offset, <span class="keyword">const</span> uint8_t *data, uint8_t len);</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gac395a7e195aa3cf28b48de345755feb0">atcab_write_bytes_zone</a>(uint8_t zone, uint16_t slot, <span class="keywordtype">size_t</span> offset_bytes, <span class="keyword">const</span> uint8_t *data, <span class="keywordtype">size_t</span> length);</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga47cbedeb3c3e9f7cbf2b9433cd60d1aa">atcab_write_pubkey</a>(uint16_t slot, <span class="keyword">const</span> uint8_t *public_key);</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga0777a86aa412a97b19cc72a12c171b94">atcab_write_config_zone</a>(<span class="keyword">const</span> uint8_t* config_data);</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#ga14cf75d1be264ac1125087d76ee6344c">atcab_write_enc</a>(uint16_t key_id, uint8_t block, <span class="keyword">const</span> uint8_t *data, <span class="keyword">const</span> uint8_t* enc_key, <span class="keyword">const</span> uint16_t enc_key_id);</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<a class="code" href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a> <a class="code" href="a00991.html#gab25ca44957dff1c2df34607738ca3bf7">atcab_write_config_counter</a>(uint16_t counter_id, uint32_t counter_value);</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;}</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* ATCA_BASIC_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="a00991_html_ga05fa8c58bf4408381db8871b0dca64b6"><div class="ttname"><a href="a00991.html#ga05fa8c58bf4408381db8871b0dca64b6">atca_aes_cmac_ctx_t</a></div><div class="ttdeci">struct atca_aes_cmac_ctx atca_aes_cmac_ctx_t</div></div>
<div class="ttc" id="a00991_html_gaeb4a36bc6992612cc3b1f950c0d020b7"><div class="ttname"><a href="a00991.html#gaeb4a36bc6992612cc3b1f950c0d020b7">atcab_selftest</a></div><div class="ttdeci">ATCA_STATUS atcab_selftest(uint8_t mode, uint16_t param2, uint8_t *result)</div><div class="ttdoc">Executes the SelfTest command, which performs a test of one or more of the cryptographic engines with...</div><div class="ttdef"><b>Definition:</b> atca_basic_selftest.c:50</div></div>
<div class="ttc" id="a00991_html_gad115ce255664a48b80e90ea19c156b79"><div class="ttname"><a href="a00991.html#gad115ce255664a48b80e90ea19c156b79">atcab_aes</a></div><div class="ttdeci">ATCA_STATUS atcab_aes(uint8_t mode, uint16_t key_id, const uint8_t *aes_in, uint8_t *aes_out)</div><div class="ttdoc">Compute the AES-128 encrypt, decrypt, or GFM calculation.</div><div class="ttdef"><b>Definition:</b> atca_basic_aes.c:51</div></div>
<div class="ttc" id="a00991_html_ga958190a9182d1b54f82fbca8216406ea"><div class="ttname"><a href="a00991.html#ga958190a9182d1b54f82fbca8216406ea">atcab_lock_data_slot</a></div><div class="ttdeci">ATCA_STATUS atcab_lock_data_slot(uint16_t slot)</div><div class="ttdoc">Lock an individual slot in the data zone on an ATECC device. Not available for ATSHA devices....</div><div class="ttdef"><b>Definition:</b> atca_basic_lock.c:137</div></div>
<div class="ttc" id="a00991_html_ga1f5a6bbcf4f840803635fb8951b3a7e2"><div class="ttname"><a href="a00991.html#ga1f5a6bbcf4f840803635fb8951b3a7e2">atcab_write_zone</a></div><div class="ttdeci">ATCA_STATUS atcab_write_zone(uint8_t zone, uint16_t slot, uint8_t block, uint8_t offset, const uint8_t *data, uint8_t len)</div><div class="ttdoc">Executes the Write command, which writes either 4 or 32 bytes of data into a device zone.</div><div class="ttdef"><b>Definition:</b> atca_basic_write.c:121</div></div>
<div class="ttc" id="a00991_html_gac395a7e195aa3cf28b48de345755feb0"><div class="ttname"><a href="a00991.html#gac395a7e195aa3cf28b48de345755feb0">atcab_write_bytes_zone</a></div><div class="ttdeci">ATCA_STATUS atcab_write_bytes_zone(uint8_t zone, uint16_t slot, size_t offset_bytes, const uint8_t *data, size_t length)</div><div class="ttdoc">Executes the Write command, which writes data into the configuration, otp, or data zones with a given...</div><div class="ttdef"><b>Definition:</b> atca_basic_write.c:410</div></div>
<div class="ttc" id="a00991_html_gaefce484222bdbedef37787a9b10d4426"><div class="ttname"><a href="a00991.html#gaefce484222bdbedef37787a9b10d4426">atcab_is_locked</a></div><div class="ttdeci">ATCA_STATUS atcab_is_locked(uint8_t zone, bool *is_locked)</div><div class="ttdoc">Executes Read command, which reads the configuration zone to see if the specified zone is locked.</div><div class="ttdef"><b>Definition:</b> atca_basic_read.c:186</div></div>
<div class="ttc" id="a00991_html_ga475b72450dcd21c822de5cb366197927"><div class="ttname"><a href="a00991.html#ga475b72450dcd21c822de5cb366197927">atcab_aes_ctr_increment</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_ctr_increment(atca_aes_ctr_ctx_t *ctx)</div><div class="ttdoc">Increments AES CTR counter value.</div><div class="ttdef"><b>Definition:</b> atca_basic_aes_ctr.c:127</div></div>
<div class="ttc" id="a00991_html_ga5c1e598bf3d4d25b522f42d6038a4268"><div class="ttname"><a href="a00991.html#ga5c1e598bf3d4d25b522f42d6038a4268">atcab_sign_base</a></div><div class="ttdeci">ATCA_STATUS atcab_sign_base(uint8_t mode, uint16_t key_id, uint8_t *signature)</div><div class="ttdoc">Executes the Sign command, which generates a signature using the ECDSA algorithm.</div><div class="ttdef"><b>Definition:</b> atca_basic_sign.c:50</div></div>
<div class="ttc" id="a00991_html_ga2b02163fab87313b81dd7f51345d3eb6"><div class="ttname"><a href="a00991.html#ga2b02163fab87313b81dd7f51345d3eb6">atcab_get_device_type</a></div><div class="ttdeci">ATCADeviceType atcab_get_device_type(void)</div><div class="ttdoc">Get the current device type.</div><div class="ttdef"><b>Definition:</b> atca_basic.c:163</div></div>
<div class="ttc" id="a00991_html_gab22d2a32e6c32c14c4e58ce794ff3ec4"><div class="ttname"><a href="a00991.html#gab22d2a32e6c32c14c4e58ce794ff3ec4">atcab_init_device</a></div><div class="ttdeci">ATCA_STATUS atcab_init_device(ATCADevice ca_device)</div><div class="ttdoc">Initialize the global ATCADevice object to point to one of your choosing for use with all the atcab_ ...</div><div class="ttdef"><b>Definition:</b> atca_basic.c:110</div></div>
<div class="ttc" id="a00991_html_ga0db7d24f31dc2dd4805e3c433ae604ad"><div class="ttname"><a href="a00991.html#ga0db7d24f31dc2dd4805e3c433ae604ad">atcab_aes_ctr_init</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_ctr_init(atca_aes_ctr_ctx_t *ctx, uint16_t key_id, uint8_t key_block, uint8_t counter_size, const uint8_t *iv)</div><div class="ttdoc">Initialize context for AES CTR operation with an existing IV, which is common when start a decrypt op...</div><div class="ttdef"><b>Definition:</b> atca_basic_aes_ctr.c:56</div></div>
<div class="ttc" id="a00991_html_ga6e510e056ea16a0a34b405b7ca378f16"><div class="ttname"><a href="a00991.html#ga6e510e056ea16a0a34b405b7ca378f16">atcab_counter_increment</a></div><div class="ttdeci">ATCA_STATUS atcab_counter_increment(uint16_t counter_id, uint32_t *counter_value)</div><div class="ttdoc">Increments one of the device's monotonic counters.</div><div class="ttdef"><b>Definition:</b> atca_basic_counter.c:91</div></div>
<div class="ttc" id="a00991_html_ga376b6ae92f14c60fba4ca5c6461e0b48"><div class="ttname"><a href="a00991.html#ga376b6ae92f14c60fba4ca5c6461e0b48">atcab_info_get_latch</a></div><div class="ttdeci">ATCA_STATUS atcab_info_get_latch(bool *state)</div><div class="ttdoc">Use the Info command to get the persistent latch current state for an ATECC608A device.</div><div class="ttdef"><b>Definition:</b> atca_basic_info.c:105</div></div>
<div class="ttc" id="a01073_html"><div class="ttname"><a href="a01073.html">atca_aes_cmac_ctx</a></div><div class="ttdef"><b>Definition:</b> atca_basic.h:87</div></div>
<div class="ttc" id="a00991_html_ga31d269ccdafd08519a899a8aebf53df1"><div class="ttname"><a href="a00991.html#ga31d269ccdafd08519a899a8aebf53df1">atcab_sha</a></div><div class="ttdeci">ATCA_STATUS atcab_sha(uint16_t length, const uint8_t *message, uint8_t *digest)</div><div class="ttdoc">Use the SHA command to compute a SHA-256 digest.</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:196</div></div>
<div class="ttc" id="a00991_html_ga692423e9c45adde594c36360756b8882"><div class="ttname"><a href="a00991.html#ga692423e9c45adde594c36360756b8882">_gDevice</a></div><div class="ttdeci">ATCADevice _gDevice</div><div class="ttdef"><b>Definition:</b> atca_basic.c:34</div></div>
<div class="ttc" id="a00344_html"><div class="ttname"><a href="a00344.html">atca_crypto_sw_sha2.h</a></div><div class="ttdoc">Wrapper API for software SHA 256 routines.</div></div>
<div class="ttc" id="a00991_html_ga2c3e18de900ba705192963d08b37f600"><div class="ttname"><a href="a00991.html#ga2c3e18de900ba705192963d08b37f600">atcab_verify_extern</a></div><div class="ttdeci">ATCA_STATUS atcab_verify_extern(const uint8_t *message, const uint8_t *signature, const uint8_t *public_key, bool *is_verified)</div><div class="ttdoc">Executes the Verify command, which verifies a signature (ECDSA verify operation) with all components ...</div><div class="ttdef"><b>Definition:</b> atca_basic_verify.c:247</div></div>
<div class="ttc" id="a00991_html_ga806d07982fda5c30755af6b5b4ef9314"><div class="ttname"><a href="a00991.html#ga806d07982fda5c30755af6b5b4ef9314">atcab_info_base</a></div><div class="ttdeci">ATCA_STATUS atcab_info_base(uint8_t mode, uint16_t param2, uint8_t *out_data)</div><div class="ttdoc">Issues an Info command, which return internal device information and can control GPIO and the persist...</div><div class="ttdef"><b>Definition:</b> atca_basic_info.c:50</div></div>
<div class="ttc" id="a00991_html_gae7558905ea6a82c4bd50d4b99e954d91"><div class="ttname"><a href="a00991.html#gae7558905ea6a82c4bd50d4b99e954d91">atcab_aes_ctr_init_rand</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_ctr_init_rand(atca_aes_ctr_ctx_t *ctx, uint16_t key_id, uint8_t key_block, uint8_t counter_size, uint8_t *iv)</div><div class="ttdoc">Initialize context for AES CTR operation with a random nonce and counter set to 0 as the IV,...</div><div class="ttdef"><b>Definition:</b> atca_basic_aes_ctr.c:91</div></div>
<div class="ttc" id="a01073_html_a9e3fb1e50a1c71b2337df296222d9553"><div class="ttname"><a href="a01073.html#a9e3fb1e50a1c71b2337df296222d9553">atca_aes_cmac_ctx::block_size</a></div><div class="ttdeci">uint32_t block_size</div><div class="ttdoc">Number of bytes in current block.</div><div class="ttdef"><b>Definition:</b> atca_basic.h:90</div></div>
<div class="ttc" id="a00991_html_ga310a017cddce9ef05071cb619b4b6db9"><div class="ttname"><a href="a00991.html#ga310a017cddce9ef05071cb619b4b6db9">atcab_sha_hmac_init</a></div><div class="ttdeci">ATCA_STATUS atcab_sha_hmac_init(atca_hmac_sha256_ctx_t *ctx, uint16_t key_slot)</div><div class="ttdoc">Executes SHA command to start an HMAC/SHA-256 operation.</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:379</div></div>
<div class="ttc" id="a00991_html_ga9475e032c388144c5a0df45d1df182a5"><div class="ttname"><a href="a00991.html#ga9475e032c388144c5a0df45d1df182a5">atcab_sleep</a></div><div class="ttdeci">ATCA_STATUS atcab_sleep(void)</div><div class="ttdoc">invoke sleep on the CryptoAuth device</div><div class="ttdef"><b>Definition:</b> atca_basic.c:204</div></div>
<div class="ttc" id="a00359_html"><div class="ttname"><a href="a00359.html">cryptoauthlib.h</a></div><div class="ttdoc">Single aggregation point for all CryptoAuthLib header files.</div></div>
<div class="ttc" id="a00991_html_gaed67d447d547c67b7b8be6b958d1fb5c"><div class="ttname"><a href="a00991.html#gaed67d447d547c67b7b8be6b958d1fb5c">atcab_nonce_rand</a></div><div class="ttdeci">ATCA_STATUS atcab_nonce_rand(const uint8_t *num_in, uint8_t *rand_out)</div><div class="ttdoc">Execute a Nonce command to generate a random nonce combining a host nonce (num_in) and a device rando...</div><div class="ttdef"><b>Definition:</b> atca_basic_nonce.c:174</div></div>
<div class="ttc" id="a00991_html_ga0cf22e893c713890faeb9fa8784760b1"><div class="ttname"><a href="a00991.html#ga0cf22e893c713890faeb9fa8784760b1">atcab_aes_cmac_update</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_cmac_update(atca_aes_cmac_ctx_t *ctx, const uint8_t *data, uint32_t data_size)</div><div class="ttdoc">Add data to an initialized CMAC calculation.</div><div class="ttdef"><b>Definition:</b> atca_basic_aes_cmac.c:74</div></div>
<div class="ttc" id="a00991_html_ga7414e3dc8215cedc1bffc6cf576d7d1e"><div class="ttname"><a href="a00991.html#ga7414e3dc8215cedc1bffc6cf576d7d1e">atcab_aes_cbc_encrypt_block</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_cbc_encrypt_block(atca_aes_cbc_ctx_t *ctx, const uint8_t *plaintext, uint8_t *ciphertext)</div><div class="ttdoc">Encrypt a block of data using CBC mode and a key within the ATECC608A. atcab_aes_cbc_init() should be...</div><div class="ttdef"><b>Definition:</b> atca_basic_aes_cbc.c:76</div></div>
<div class="ttc" id="a00991_html_ga52b18f051752d214a2d5b485270f5b15"><div class="ttname"><a href="a00991.html#ga52b18f051752d214a2d5b485270f5b15">atca_aes_ctr_ctx_t</a></div><div class="ttdeci">struct atca_aes_ctr_ctx atca_aes_ctr_ctx_t</div></div>
<div class="ttc" id="a00991_html_ga750704332198726725a327344f4f7dd5"><div class="ttname"><a href="a00991.html#ga750704332198726725a327344f4f7dd5">atcab_read_bytes_zone</a></div><div class="ttdeci">ATCA_STATUS atcab_read_bytes_zone(uint8_t zone, uint16_t slot, size_t offset, uint8_t *data, size_t length)</div><div class="ttdoc">Used to read an arbitrary number of bytes from any zone configured for clear reads.</div><div class="ttdef"><b>Definition:</b> atca_basic_read.c:607</div></div>
<div class="ttc" id="a00991_html_ga9393b545b2fa1fdd539672a0428a30ab"><div class="ttname"><a href="a00991.html#ga9393b545b2fa1fdd539672a0428a30ab">atcab_verify_invalidate</a></div><div class="ttdeci">ATCA_STATUS atcab_verify_invalidate(uint16_t key_id, const uint8_t *signature, const uint8_t *other_data, bool *is_verified)</div><div class="ttdoc">Executes the Verify command in Invalidate mode which invalidates a previously validated public key st...</div><div class="ttdef"><b>Definition:</b> atca_basic_verify.c:476</div></div>
<div class="ttc" id="a00991_html_ga14cf75d1be264ac1125087d76ee6344c"><div class="ttname"><a href="a00991.html#ga14cf75d1be264ac1125087d76ee6344c">atcab_write_enc</a></div><div class="ttdeci">ATCA_STATUS atcab_write_enc(uint16_t key_id, uint8_t block, const uint8_t *data, const uint8_t *enc_key, const uint16_t enc_key_id)</div><div class="ttdoc">Executes the Write command, which performs an encrypted write of a 32 byte block into given slot.</div><div class="ttdef"><b>Definition:</b> atca_basic_write.c:175</div></div>
<div class="ttc" id="a00991_html_ga559add3e8b4f85a9d91fc0ed86aefa29"><div class="ttname"><a href="a00991.html#ga559add3e8b4f85a9d91fc0ed86aefa29">atcab_sign_internal</a></div><div class="ttdeci">ATCA_STATUS atcab_sign_internal(uint16_t key_id, bool is_invalidate, bool is_full_sn, uint8_t *signature)</div><div class="ttdoc">Executes Sign command to sign an internally generated message.</div><div class="ttdef"><b>Definition:</b> atca_basic_sign.c:154</div></div>
<div class="ttc" id="a00991_html_gabaaaef242649206029e1c10ac6d1fb7d"><div class="ttname"><a href="a00991.html#gabaaaef242649206029e1c10ac6d1fb7d">atcab_counter</a></div><div class="ttdeci">ATCA_STATUS atcab_counter(uint8_t mode, uint16_t counter_id, uint32_t *counter_value)</div><div class="ttdoc">Compute the Counter functions.</div><div class="ttdef"><b>Definition:</b> atca_basic_counter.c:45</div></div>
<div class="ttc" id="a00991_html_gaa8b6953ad2c7f749e61566fd38fe6903"><div class="ttname"><a href="a00991.html#gaa8b6953ad2c7f749e61566fd38fe6903">atcab_genkey_base</a></div><div class="ttdeci">ATCA_STATUS atcab_genkey_base(uint8_t mode, uint16_t key_id, const uint8_t *other_data, uint8_t *public_key)</div><div class="ttdoc">Issues GenKey command, which can generate a private key, compute a public key, nd/or compute a digest...</div><div class="ttdef"><b>Definition:</b> atca_basic_genkey.c:54</div></div>
<div class="ttc" id="a00991_html_gaa4be9972396b7cadb08dd8e2199daf08"><div class="ttname"><a href="a00991.html#gaa4be9972396b7cadb08dd8e2199daf08">atcab_sha_hmac_finish</a></div><div class="ttdeci">ATCA_STATUS atcab_sha_hmac_finish(atca_hmac_sha256_ctx_t *ctx, uint8_t *digest, uint8_t target)</div><div class="ttdoc">Executes SHA command to complete a HMAC/SHA-256 operation.</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:451</div></div>
<div class="ttc" id="a00991_html_ga4fa442396dfbb89e59dfca837b565cec"><div class="ttname"><a href="a00991.html#ga4fa442396dfbb89e59dfca837b565cec">atcab_random</a></div><div class="ttdeci">ATCA_STATUS atcab_random(uint8_t *rand_out)</div><div class="ttdoc">Executes Random command, which generates a 32 byte random number from the CryptoAuth device.</div><div class="ttdef"><b>Definition:</b> atca_basic_random.c:43</div></div>
<div class="ttc" id="a00987_html_ga8cbce00b91b0ddfb3264c9c367a3699a"><div class="ttname"><a href="a00987.html#ga8cbce00b91b0ddfb3264c9c367a3699a">AES_DATA_SIZE</a></div><div class="ttdeci">#define AES_DATA_SIZE</div><div class="ttdoc">size of AES encrypt/decrypt data</div><div class="ttdef"><b>Definition:</b> atca_command.h:306</div></div>
<div class="ttc" id="a00991_html_gaff701132013eaac5600dd9fd6253505d"><div class="ttname"><a href="a00991.html#gaff701132013eaac5600dd9fd6253505d">atcab_version</a></div><div class="ttdeci">ATCA_STATUS atcab_version(char *ver_str)</div><div class="ttdoc">basic API methods are all prefixed with atcab_ (CryptoAuthLib Basic) the fundamental premise of the b...</div><div class="ttdef"><b>Definition:</b> atca_basic.c:53</div></div>
<div class="ttc" id="a00991_html_gacdc4fa3d2f2f6d197af8c10ab1f288b8"><div class="ttname"><a href="a00991.html#gacdc4fa3d2f2f6d197af8c10ab1f288b8">atcab_init</a></div><div class="ttdeci">ATCA_STATUS atcab_init(ATCAIfaceCfg *cfg)</div><div class="ttdoc">Creates a global ATCADevice object used by Basic API.</div><div class="ttdef"><b>Definition:</b> atca_basic.c:65</div></div>
<div class="ttc" id="a00991_html_ga98cb802fbb5d78cd552bb05c21d6c791"><div class="ttname"><a href="a00991.html#ga98cb802fbb5d78cd552bb05c21d6c791">atcab_mac</a></div><div class="ttdeci">ATCA_STATUS atcab_mac(uint8_t mode, uint16_t key_id, const uint8_t *challenge, uint8_t *digest)</div><div class="ttdoc">Executes MAC command, which computes a SHA-256 digest of a key stored in the device,...</div><div class="ttdef"><b>Definition:</b> atca_basic_mac.c:52</div></div>
<div class="ttc" id="a00991_html_gaadde4309089c569fd87c24a1a2326cd4"><div class="ttname"><a href="a00991.html#gaadde4309089c569fd87c24a1a2326cd4">atcab_challenge_seed_update</a></div><div class="ttdeci">ATCA_STATUS atcab_challenge_seed_update(const uint8_t *num_in, uint8_t *rand_out)</div><div class="ttdoc">Execute a Nonce command to generate a random challenge combining a host nonce (num_in) and a device r...</div><div class="ttdef"><b>Definition:</b> atca_basic_nonce.c:202</div></div>
<div class="ttc" id="a00991_html_ga0698e0c55ad700fe57498321e842cb38"><div class="ttname"><a href="a00991.html#ga0698e0c55ad700fe57498321e842cb38">atcab_lock_config_zone_crc</a></div><div class="ttdeci">ATCA_STATUS atcab_lock_config_zone_crc(uint16_t summary_crc)</div><div class="ttdoc">Lock the config zone with summary CRC.</div><div class="ttdef"><b>Definition:</b> atca_basic_lock.c:98</div></div>
<div class="ttc" id="a00991_html_gad2096a4618dd37c48ed48847fe63d844"><div class="ttname"><a href="a00991.html#gad2096a4618dd37c48ed48847fe63d844">atcab_get_pubkey</a></div><div class="ttdeci">ATCA_STATUS atcab_get_pubkey(uint16_t key_id, uint8_t *public_key)</div><div class="ttdoc">Uses GenKey command to calculate the public key from an existing private key in a slot.</div><div class="ttdef"><b>Definition:</b> atca_basic_genkey.c:119</div></div>
<div class="ttc" id="a00991_html_ga7182e48a847f9c1b31f19c60f373e2da"><div class="ttname"><a href="a00991.html#ga7182e48a847f9c1b31f19c60f373e2da">atcab_aes_ctr_encrypt_block</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_ctr_encrypt_block(atca_aes_ctr_ctx_t *ctx, const uint8_t *plaintext, uint8_t *ciphertext)</div><div class="ttdoc">Encrypt a block of data using CTR mode and a key within the ATECC608A device. atcab_aes_ctr_init() or...</div><div class="ttdef"><b>Definition:</b> atca_basic_aes_ctr.c:209</div></div>
<div class="ttc" id="a01069_html_a984a9b23546b1bab664b3a3e721830b7"><div class="ttname"><a href="a01069.html#a984a9b23546b1bab664b3a3e721830b7">atca_aes_cbc_ctx::ciphertext</a></div><div class="ttdeci">uint8_t ciphertext[AES_DATA_SIZE]</div><div class="ttdoc">Ciphertext from last operation.</div><div class="ttdef"><b>Definition:</b> atca_basic.h:80</div></div>
<div class="ttc" id="a00173_html_a22bd6643f31f1d75dc3e7ea939f468cd"><div class="ttname"><a href="a00173.html#a22bd6643f31f1d75dc3e7ea939f468cd">ATCA_STATUS</a></div><div class="ttdeci">ATCA_STATUS</div><div class="ttdef"><b>Definition:</b> atca_status.h:41</div></div>
<div class="ttc" id="a01077_html_a5af729786916ea6a413d85fb8bba87f1"><div class="ttname"><a href="a01077.html#a5af729786916ea6a413d85fb8bba87f1">atca_aes_ctr_ctx::cb</a></div><div class="ttdeci">uint8_t cb[AES_DATA_SIZE]</div><div class="ttdoc">Counter block, comprises of nonce + count value (16 bytes).</div><div class="ttdef"><b>Definition:</b> atca_basic.h:102</div></div>
<div class="ttc" id="a00991_html_gafaccb0c9d12154b0c5b917f89f233721"><div class="ttname"><a href="a00991.html#gafaccb0c9d12154b0c5b917f89f233721">atcab_ecdh_tempkey_ioenc</a></div><div class="ttdeci">ATCA_STATUS atcab_ecdh_tempkey_ioenc(const uint8_t *public_key, uint8_t *pms, const uint8_t *io_key)</div><div class="ttdoc">ECDH command with a private key in TempKey and the premaster secret is returned encrypted using the I...</div><div class="ttdef"><b>Definition:</b> atca_basic_ecdh.c:230</div></div>
<div class="ttc" id="a00991_html_ga7cd67c03c7184ad041e2c0ad4f27db23"><div class="ttname"><a href="a00991.html#ga7cd67c03c7184ad041e2c0ad4f27db23">atcab_lock_config_zone</a></div><div class="ttdeci">ATCA_STATUS atcab_lock_config_zone(void)</div><div class="ttdoc">Unconditionally (no CRC required) lock the config zone.</div><div class="ttdef"><b>Definition:</b> atca_basic_lock.c:83</div></div>
<div class="ttc" id="a00991_html_ga5c11f2012a03ec79cb46de8e03ed0534"><div class="ttname"><a href="a00991.html#ga5c11f2012a03ec79cb46de8e03ed0534">atcab_secureboot_mac</a></div><div class="ttdeci">ATCA_STATUS atcab_secureboot_mac(uint8_t mode, const uint8_t *digest, const uint8_t *signature, const uint8_t *num_in, const uint8_t *io_key, bool *is_verified)</div><div class="ttdoc">Executes Secure Boot command with encrypted digest and validated MAC response using the IO protection...</div><div class="ttdef"><b>Definition:</b> atca_basic_secureboot.c:112</div></div>
<div class="ttc" id="a00991_html_ga39bd70baa7a4c7f4849fcf8b94d4d949"><div class="ttname"><a href="a00991.html#ga39bd70baa7a4c7f4849fcf8b94d4d949">atcab_sha_update</a></div><div class="ttdeci">ATCA_STATUS atcab_sha_update(const uint8_t *message)</div><div class="ttdoc">Executes SHA command to add 64 bytes of message data to the current context.</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:138</div></div>
<div class="ttc" id="a00991_html_ga9658e84055727e6357cf7ef636b4e398"><div class="ttname"><a href="a00991.html#ga9658e84055727e6357cf7ef636b4e398">atcab_aes_decrypt</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_decrypt(uint16_t key_id, uint8_t key_block, const uint8_t *ciphertext, uint8_t *plaintext)</div><div class="ttdoc">Perform an AES-128 decrypt operation with a key in the device.</div><div class="ttdef"><b>Definition:</b> atca_basic_aes.c:129</div></div>
<div class="ttc" id="a00991_html_gada9491be0c81fb18b021f71b9a6eda3e"><div class="ttname"><a href="a00991.html#gada9491be0c81fb18b021f71b9a6eda3e">atcab_aes_ctr_decrypt_block</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_ctr_decrypt_block(atca_aes_ctr_ctx_t *ctx, const uint8_t *ciphertext, uint8_t *plaintext)</div><div class="ttdoc">Decrypt a block of data using CTR mode and a key within the ATECC608A device. atcab_aes_ctr_init() or...</div><div class="ttdef"><b>Definition:</b> atca_basic_aes_ctr.c:225</div></div>
<div class="ttc" id="a00991_html_ga7c66e1b8b31bb87be3de6c9a9084c21e"><div class="ttname"><a href="a00991.html#ga7c66e1b8b31bb87be3de6c9a9084c21e">atcab_aes_cbc_decrypt_block</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_cbc_decrypt_block(atca_aes_cbc_ctx_t *ctx, const uint8_t *ciphertext, uint8_t *plaintext)</div><div class="ttdoc">Decrypt a block of data using CBC mode and a key within the ATECC608A. atcab_aes_cbc_init() should be...</div><div class="ttdef"><b>Definition:</b> atca_basic_aes_cbc.c:116</div></div>
<div class="ttc" id="a00991_html_ga802de50265ff91dc30dd7c93d9e026e1"><div class="ttname"><a href="a00991.html#ga802de50265ff91dc30dd7c93d9e026e1">atcab_is_slot_locked</a></div><div class="ttdeci">ATCA_STATUS atcab_is_slot_locked(uint16_t slot, bool *is_locked)</div><div class="ttdoc">Executes Read command, which reads the configuration zone to see if the specified slot is locked.</div><div class="ttdef"><b>Definition:</b> atca_basic_read.c:147</div></div>
<div class="ttc" id="a00991_html_ga070fa80ac0d76f6816d9f7affbcfb120"><div class="ttname"><a href="a00991.html#ga070fa80ac0d76f6816d9f7affbcfb120">atcab_sha_write_context</a></div><div class="ttdeci">ATCA_STATUS atcab_sha_write_context(const uint8_t *context, uint16_t context_size)</div><div class="ttdoc">Executes SHA command to write (restore) a SHA-256 context into the the device. Only supported for ATE...</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:183</div></div>
<div class="ttc" id="a00991_html_ga2293df1c1c794496790bae25d3844fa5"><div class="ttname"><a href="a00991.html#ga2293df1c1c794496790bae25d3844fa5">atcab_nonce</a></div><div class="ttdeci">ATCA_STATUS atcab_nonce(const uint8_t *num_in)</div><div class="ttdoc">Execute a Nonce command in pass-through mode to initialize TempKey to a specified value.</div><div class="ttdef"><b>Definition:</b> atca_basic_nonce.c:120</div></div>
<div class="ttc" id="a00991_html_ga40a6c01492a76366f9402302b527c4e1"><div class="ttname"><a href="a00991.html#ga40a6c01492a76366f9402302b527c4e1">atcab_kdf</a></div><div class="ttdeci">ATCA_STATUS atcab_kdf(uint8_t mode, uint16_t key_id, const uint32_t details, const uint8_t *message, uint8_t *out_data, uint8_t *out_nonce)</div><div class="ttdoc">Executes the KDF command, which derives a new key in PRF, AES, or HKDF modes.</div><div class="ttdef"><b>Definition:</b> atca_basic_kdf.c:64</div></div>
<div class="ttc" id="a00991_html_ga6ed7e645262fcc32b00d8a9facf09e91"><div class="ttname"><a href="a00991.html#ga6ed7e645262fcc32b00d8a9facf09e91">atcab_hw_sha2_256_finish</a></div><div class="ttdeci">ATCA_STATUS atcab_hw_sha2_256_finish(atca_sha256_ctx_t *ctx, uint8_t *digest)</div><div class="ttdoc">Finish SHA-256 digest for a SHA context for performing a hardware SHA-256 operation on a device.</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:276</div></div>
<div class="ttc" id="a00991_html_ga45f1d09a51f7a1f68916536ab5125b9d"><div class="ttname"><a href="a00991.html#ga45f1d09a51f7a1f68916536ab5125b9d">atcab_hmac</a></div><div class="ttdeci">ATCA_STATUS atcab_hmac(uint8_t mode, uint16_t key_id, uint8_t *digest)</div><div class="ttdoc">Issues a HMAC command, which computes an HMAC/SHA-256 digest of a key stored in the device,...</div><div class="ttdef"><b>Definition:</b> atca_basic_hmac.c:53</div></div>
<div class="ttc" id="a00991_html_gab6e0c175cbcb5f794b12a8ec22485176"><div class="ttname"><a href="a00991.html#gab6e0c175cbcb5f794b12a8ec22485176">atcab_ecdh_enc</a></div><div class="ttdeci">ATCA_STATUS atcab_ecdh_enc(uint16_t key_id, const uint8_t *public_key, uint8_t *pms, const uint8_t *read_key, uint16_t read_key_id)</div><div class="ttdoc">ECDH command with a private key in a slot and the premaster secret is read from the next slot.</div><div class="ttdef"><b>Definition:</b> atca_basic_ecdh.c:128</div></div>
<div class="ttc" id="a00991_html_ga34b7b6d46868f0d63d195216ef9939b1"><div class="ttname"><a href="a00991.html#ga34b7b6d46868f0d63d195216ef9939b1">atcab_derivekey</a></div><div class="ttdeci">ATCA_STATUS atcab_derivekey(uint8_t mode, uint16_t key_id, const uint8_t *mac)</div><div class="ttdoc">Executes the DeviveKey command for deriving a new key from a nonce (TempKey) and an existing key.</div><div class="ttdef"><b>Definition:</b> atca_basic_derivekey.c:48</div></div>
<div class="ttc" id="a01069_html_ac21eed4200889cc115d16a781871d01c"><div class="ttname"><a href="a01069.html#ac21eed4200889cc115d16a781871d01c">atca_aes_cbc_ctx::key_id</a></div><div class="ttdeci">uint16_t key_id</div><div class="ttdoc">Key location. Can either be a slot number or ATCA_TEMPKEY_KEYID for TempKey.</div><div class="ttdef"><b>Definition:</b> atca_basic.h:78</div></div>
<div class="ttc" id="a00991_html_ga5802cd6847a837458604db5dbec4a6f0"><div class="ttname"><a href="a00991.html#ga5802cd6847a837458604db5dbec4a6f0">_atcab_exit</a></div><div class="ttdeci">ATCA_STATUS _atcab_exit(void)</div><div class="ttdoc">common cleanup code which idles the device after any operation</div><div class="ttdef"><b>Definition:</b> atca_basic.c:313</div></div>
<div class="ttc" id="a00991_html_ga7a823d2a391bf80ff336eb2ccbd37412"><div class="ttname"><a href="a00991.html#ga7a823d2a391bf80ff336eb2ccbd37412">atcab_get_zone_size</a></div><div class="ttdeci">ATCA_STATUS atcab_get_zone_size(uint8_t zone, uint16_t slot, size_t *size)</div><div class="ttdoc">Gets the size of the specified zone in bytes.</div><div class="ttdef"><b>Definition:</b> atca_basic.c:372</div></div>
<div class="ttc" id="a00991_html_gaa52cdbbfd2f089d8eb42ef2640204ca7"><div class="ttname"><a href="a00991.html#gaa52cdbbfd2f089d8eb42ef2640204ca7">atcab_verify_stored_mac</a></div><div class="ttdeci">ATCA_STATUS atcab_verify_stored_mac(const uint8_t *message, const uint8_t *signature, uint16_t key_id, const uint8_t *num_in, const uint8_t *io_key, bool *is_verified)</div><div class="ttdoc">Executes the Verify command with verification MAC, which verifies a signature (ECDSA verify operation...</div><div class="ttdef"><b>Definition:</b> atca_basic_verify.c:409</div></div>
<div class="ttc" id="a00991_html_ga67f2ce6224651d9cc65e9915e35558bd"><div class="ttname"><a href="a00991.html#ga67f2ce6224651d9cc65e9915e35558bd">atcab_hw_sha2_256_update</a></div><div class="ttdeci">ATCA_STATUS atcab_hw_sha2_256_update(atca_sha256_ctx_t *ctx, const uint8_t *data, size_t data_size)</div><div class="ttdoc">Add message data to a SHA context for performing a hardware SHA-256 operation on a device.</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:223</div></div>
<div class="ttc" id="a01077_html_a2ec310210422989027a46428a61fb1c1"><div class="ttname"><a href="a01077.html#a2ec310210422989027a46428a61fb1c1">atca_aes_ctr_ctx::key_block</a></div><div class="ttdeci">uint8_t key_block</div><div class="ttdoc">Index of the 16-byte block to use within the key location for the actual key.</div><div class="ttdef"><b>Definition:</b> atca_basic.h:101</div></div>
<div class="ttc" id="a00991_html_ga25d2895192d93c524f5dba92a492cdfb"><div class="ttname"><a href="a00991.html#ga25d2895192d93c524f5dba92a492cdfb">atcab_lock</a></div><div class="ttdeci">ATCA_STATUS atcab_lock(uint8_t mode, uint16_t summary_crc)</div><div class="ttdoc">The Lock command prevents future modifications of the Configuration and/or Data and OTP zones....</div><div class="ttdef"><b>Definition:</b> atca_basic_lock.c:50</div></div>
<div class="ttc" id="a00991_html_gacf9a0c7772ebb65b87c4a4788850702b"><div class="ttname"><a href="a00991.html#gacf9a0c7772ebb65b87c4a4788850702b">atcab_verify_validate</a></div><div class="ttdeci">ATCA_STATUS atcab_verify_validate(uint16_t key_id, const uint8_t *signature, const uint8_t *other_data, bool *is_verified)</div><div class="ttdoc">Executes the Verify command in Validate mode to validate a public key stored in a slot.</div><div class="ttdef"><b>Definition:</b> atca_basic_verify.c:439</div></div>
<div class="ttc" id="a00991_html_gaeee666028a097659af69cc828a6bd68b"><div class="ttname"><a href="a00991.html#gaeee666028a097659af69cc828a6bd68b">atcab_counter_read</a></div><div class="ttdeci">ATCA_STATUS atcab_counter_read(uint16_t counter_id, uint32_t *counter_value)</div><div class="ttdoc">Read one of the device's monotonic counters.</div><div class="ttdef"><b>Definition:</b> atca_basic_counter.c:101</div></div>
<div class="ttc" id="a00991_html_ga0777a86aa412a97b19cc72a12c171b94"><div class="ttname"><a href="a00991.html#ga0777a86aa412a97b19cc72a12c171b94">atcab_write_config_zone</a></div><div class="ttdeci">ATCA_STATUS atcab_write_config_zone(const uint8_t *config_data)</div><div class="ttdoc">Executes the Write command, which writes the configuration zone.</div><div class="ttdef"><b>Definition:</b> atca_basic_write.c:301</div></div>
<div class="ttc" id="a00991_html_ga1db86704035048066a370815b657234d"><div class="ttname"><a href="a00991.html#ga1db86704035048066a370815b657234d">atcab_sha_end</a></div><div class="ttdeci">ATCA_STATUS atcab_sha_end(uint8_t *digest, uint16_t length, const uint8_t *message)</div><div class="ttdoc">Executes SHA command to complete SHA-256 or HMAC/SHA-256 operation.</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:153</div></div>
<div class="ttc" id="a00991_html_gab25ca44957dff1c2df34607738ca3bf7"><div class="ttname"><a href="a00991.html#gab25ca44957dff1c2df34607738ca3bf7">atcab_write_config_counter</a></div><div class="ttdeci">ATCA_STATUS atcab_write_config_counter(uint16_t counter_id, uint32_t counter_value)</div><div class="ttdoc">Initialize one of the monotonic counters in device with a specific value.</div><div class="ttdef"><b>Definition:</b> atca_basic_write.c:505</div></div>
<div class="ttc" id="a00991_html_ga098c4c2c724b90b7e2f4ecf12b9530b7"><div class="ttname"><a href="a00991.html#ga098c4c2c724b90b7e2f4ecf12b9530b7">atcab_read_sig</a></div><div class="ttdeci">ATCA_STATUS atcab_read_sig(uint16_t slot, uint8_t *sig)</div><div class="ttdoc">Executes Read command to read a 64 byte ECDSA P256 signature from a slot configured for clear reads.</div><div class="ttdef"><b>Definition:</b> atca_basic_read.c:472</div></div>
<div class="ttc" id="a00987_html_ga85e0a506bd6fdae6ce32d5df3a48ac1c"><div class="ttname"><a href="a00987.html#ga85e0a506bd6fdae6ce32d5df3a48ac1c">ATCA_SHA256_BLOCK_SIZE</a></div><div class="ttdeci">#define ATCA_SHA256_BLOCK_SIZE</div><div class="ttdef"><b>Definition:</b> atca_command.h:654</div></div>
<div class="ttc" id="a00991_html_ga9506331ea7d454fe3c9b2585128c77aa"><div class="ttname"><a href="a00991.html#ga9506331ea7d454fe3c9b2585128c77aa">atcab_secureboot</a></div><div class="ttdeci">ATCA_STATUS atcab_secureboot(uint8_t mode, uint16_t param2, const uint8_t *digest, const uint8_t *signature, uint8_t *mac)</div><div class="ttdoc">Executes Secure Boot command, which provides support for secure boot of an external MCU or MPU.</div><div class="ttdef"><b>Definition:</b> atca_basic_secureboot.c:53</div></div>
<div class="ttc" id="a00991_html_ga4af82005556c549c30e1c4bd35d4f4e4"><div class="ttname"><a href="a00991.html#ga4af82005556c549c30e1c4bd35d4f4e4">atcab_get_device</a></div><div class="ttdeci">ATCADevice atcab_get_device(void)</div><div class="ttdoc">Get the global device object.</div><div class="ttdef"><b>Definition:</b> atca_basic.c:155</div></div>
<div class="ttc" id="a00991_html_ga416e4aeacf3acc35b1d5b76028c6947d"><div class="ttname"><a href="a00991.html#ga416e4aeacf3acc35b1d5b76028c6947d">atcab_updateextra</a></div><div class="ttdeci">ATCA_STATUS atcab_updateextra(uint8_t mode, uint16_t new_value)</div><div class="ttdoc">Executes UpdateExtra command to update the values of the two extra bytes within the Configuration zon...</div><div class="ttdef"><b>Definition:</b> atca_basic_updateextra.c:49</div></div>
<div class="ttc" id="a01009_html"><div class="ttname"><a href="a01009.html">atca_device</a></div><div class="ttdoc">atca_device is the C object backing ATCADevice. See the atca_device.h file for details on the ATCADev...</div><div class="ttdef"><b>Definition:</b> atca_device.h:44</div></div>
<div class="ttc" id="a00991_html_ga96c434878e1f435e2cda5b0b5fec444f"><div class="ttname"><a href="a00991.html#ga96c434878e1f435e2cda5b0b5fec444f">atcab_read_serial_number</a></div><div class="ttdeci">ATCA_STATUS atcab_read_serial_number(uint8_t *serial_number)</div><div class="ttdoc">Executes Read command, which reads the 9 byte serial number of the device from the config zone.</div><div class="ttdef"><b>Definition:</b> atca_basic_read.c:116</div></div>
<div class="ttc" id="a00991_html_ga782ca1e5b1574b2b6793c841be22b28b"><div class="ttname"><a href="a00991.html#ga782ca1e5b1574b2b6793c841be22b28b">atcab_read_pubkey</a></div><div class="ttdeci">ATCA_STATUS atcab_read_pubkey(uint16_t slot, uint8_t *public_key)</div><div class="ttdoc">Executes Read command to read an ECC P256 public key from a slot configured for clear reads.</div><div class="ttdef"><b>Definition:</b> atca_basic_read.c:515</div></div>
<div class="ttc" id="a00991_html_ga6e19ecd60be4c74665d9ec142e460771"><div class="ttname"><a href="a00991.html#ga6e19ecd60be4c74665d9ec142e460771">atcab_info</a></div><div class="ttdeci">ATCA_STATUS atcab_info(uint8_t *revision)</div><div class="ttdoc">Use the Info command to get the device revision (DevRev).</div><div class="ttdef"><b>Definition:</b> atca_basic_info.c:87</div></div>
<div class="ttc" id="a00991_html_ga6fc480ad2824df6309f4f370ffad15f9"><div class="ttname"><a href="a00991.html#ga6fc480ad2824df6309f4f370ffad15f9">atcab_ecdh</a></div><div class="ttdeci">ATCA_STATUS atcab_ecdh(uint16_t key_id, const uint8_t *public_key, uint8_t *pms)</div><div class="ttdoc">ECDH command with a private key in a slot and the premaster secret is returned in the clear.</div><div class="ttdef"><b>Definition:</b> atca_basic_ecdh.c:103</div></div>
<div class="ttc" id="a00991_html_gabf2b29b4d3ae926b63c403d084380dbe"><div class="ttname"><a href="a00991.html#gabf2b29b4d3ae926b63c403d084380dbe">atcab_write</a></div><div class="ttdeci">ATCA_STATUS atcab_write(uint8_t zone, uint16_t address, const uint8_t *value, const uint8_t *mac)</div><div class="ttdoc">Executes the Write command, which writes either one four byte word or a 32-byte block to one of the E...</div><div class="ttdef"><b>Definition:</b> atca_basic_write.c:59</div></div>
<div class="ttc" id="a00991_html_ga694d921c7bc17a0e158ef96e3d476700"><div class="ttname"><a href="a00991.html#ga694d921c7bc17a0e158ef96e3d476700">atcab_verify</a></div><div class="ttdeci">ATCA_STATUS atcab_verify(uint8_t mode, uint16_t key_id, const uint8_t *signature, const uint8_t *public_key, const uint8_t *other_data, uint8_t *mac)</div><div class="ttdoc">Executes the Verify command, which takes an ECDSA [R,S] signature and verifies that it is correctly g...</div><div class="ttdef"><b>Definition:</b> atca_basic_verify.c:69</div></div>
<div class="ttc" id="a00991_html_ga17bf17c4786be097a0bb111a6f9d8ca6"><div class="ttname"><a href="a00991.html#ga17bf17c4786be097a0bb111a6f9d8ca6">atcab_verify_extern_mac</a></div><div class="ttdeci">ATCA_STATUS atcab_verify_extern_mac(const uint8_t *message, const uint8_t *signature, const uint8_t *public_key, const uint8_t *num_in, const uint8_t *io_key, bool *is_verified)</div><div class="ttdoc">Executes the Verify command with verification MAC, which verifies a signature (ECDSA verify operation...</div><div class="ttdef"><b>Definition:</b> atca_basic_verify.c:314</div></div>
<div class="ttc" id="a00991_html_gae655ce06583c08169170102fbb0b55c9"><div class="ttname"><a href="a00991.html#gae655ce06583c08169170102fbb0b55c9">atcab_sha_hmac</a></div><div class="ttdeci">ATCA_STATUS atcab_sha_hmac(const uint8_t *data, size_t data_size, uint16_t key_slot, uint8_t *digest, uint8_t target)</div><div class="ttdoc">Use the SHA command to compute an HMAC/SHA-256 operation.</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:484</div></div>
<div class="ttc" id="a01077_html_ac21eed4200889cc115d16a781871d01c"><div class="ttname"><a href="a01077.html#ac21eed4200889cc115d16a781871d01c">atca_aes_ctr_ctx::key_id</a></div><div class="ttdeci">uint16_t key_id</div><div class="ttdoc">Key location. Can either be a slot number or ATCA_TEMPKEY_KEYID for TempKey.</div><div class="ttdef"><b>Definition:</b> atca_basic.h:100</div></div>
<div class="ttc" id="a01081_html_a407f9109b29f2f3a4c9f7d1de450ad41"><div class="ttname"><a href="a01081.html#a407f9109b29f2f3a4c9f7d1de450ad41">atca_sha256_ctx::block</a></div><div class="ttdeci">uint8_t block[ATCA_SHA256_BLOCK_SIZE *2]</div><div class="ttdoc">Unprocessed message storage.</div><div class="ttdef"><b>Definition:</b> atca_basic.h:201</div></div>
<div class="ttc" id="a00991_html_gacc9a58dc49f91674213f34fa7bbd05e1"><div class="ttname"><a href="a00991.html#gacc9a58dc49f91674213f34fa7bbd05e1">atcab_aes_encrypt</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_encrypt(uint16_t key_id, uint8_t key_block, const uint8_t *plaintext, uint8_t *ciphertext)</div><div class="ttdoc">Perform an AES-128 encrypt operation with a key in the device.</div><div class="ttdef"><b>Definition:</b> atca_basic_aes.c:110</div></div>
<div class="ttc" id="a00991_html_gabdfeb1f8d28039e9b30d4e39b8caa33a"><div class="ttname"><a href="a00991.html#gabdfeb1f8d28039e9b30d4e39b8caa33a">atcab_get_addr</a></div><div class="ttdeci">ATCA_STATUS atcab_get_addr(uint8_t zone, uint16_t slot, uint8_t block, uint8_t offset, uint16_t *addr)</div><div class="ttdoc">Compute the address given the zone, slot, block, and offset.</div><div class="ttdef"><b>Definition:</b> atca_basic.c:327</div></div>
<div class="ttc" id="a00991_html_ga3a061c1f96bb641b36fc56b6cb2dd4e4"><div class="ttname"><a href="a00991.html#ga3a061c1f96bb641b36fc56b6cb2dd4e4">atcab_release</a></div><div class="ttdeci">ATCA_STATUS atcab_release(void)</div><div class="ttdoc">release (free) the global ATCADevice instance. This must be called in order to release or free up the...</div><div class="ttdef"><b>Definition:</b> atca_basic.c:137</div></div>
<div class="ttc" id="a00991_html_gaf29e398e2aca927ab4606aa1ec0308c6"><div class="ttname"><a href="a00991.html#gaf29e398e2aca927ab4606aa1ec0308c6">atcab_lock_data_zone_crc</a></div><div class="ttdeci">ATCA_STATUS atcab_lock_data_zone_crc(uint16_t summary_crc)</div><div class="ttdoc">Lock the data zone (slots and OTP) with summary CRC.</div><div class="ttdef"><b>Definition:</b> atca_basic_lock.c:124</div></div>
<div class="ttc" id="a00991_html_ga1518196e269b549eec78087abd130de7"><div class="ttname"><a href="a00991.html#ga1518196e269b549eec78087abd130de7">atcab_cfg_discover</a></div><div class="ttdeci">ATCA_STATUS atcab_cfg_discover(ATCAIfaceCfg cfg_array[], int max)</div><div class="ttdoc">auto discovery of crypto auth devices</div><div class="ttdef"><b>Definition:</b> atca_basic.c:228</div></div>
<div class="ttc" id="a00991_html_ga530ccce9f617be7dbf3661e19a4c0546"><div class="ttname"><a href="a00991.html#ga530ccce9f617be7dbf3661e19a4c0546">atca_sha256_ctx_t</a></div><div class="ttdeci">struct atca_sha256_ctx atca_sha256_ctx_t</div></div>
<div class="ttc" id="a00991_html_gabc41b824cdc9b10efa46bcbf74850184"><div class="ttname"><a href="a00991.html#gabc41b824cdc9b10efa46bcbf74850184">atcab_aes_cbc_init</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_cbc_init(atca_aes_cbc_ctx_t *ctx, uint16_t key_id, uint8_t key_block, const uint8_t *iv)</div><div class="ttdoc">Initialize context for AES CBC operation.</div><div class="ttdef"><b>Definition:</b> atca_basic_aes_cbc.c:51</div></div>
<div class="ttc" id="a00991_html_gab3a32e171ca1c30bd31a216b32c9b5a4"><div class="ttname"><a href="a00991.html#gab3a32e171ca1c30bd31a216b32c9b5a4">atcab_sha_base</a></div><div class="ttdeci">ATCA_STATUS atcab_sha_base(uint8_t mode, uint16_t length, const uint8_t *data_in, uint8_t *data_out, uint16_t *data_out_size)</div><div class="ttdoc">Executes SHA command, which computes a SHA-256 or HMAC/SHA-256 digest for general purpose use by the ...</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:70</div></div>
<div class="ttc" id="a01081_html"><div class="ttname"><a href="a01081.html">atca_sha256_ctx</a></div><div class="ttdef"><b>Definition:</b> atca_basic.h:197</div></div>
<div class="ttc" id="a01081_html_a8ee7e642376903508dd6b4df9eacc2de"><div class="ttname"><a href="a01081.html#a8ee7e642376903508dd6b4df9eacc2de">atca_sha256_ctx::total_msg_size</a></div><div class="ttdeci">uint32_t total_msg_size</div><div class="ttdoc">Total number of message bytes processed.</div><div class="ttdef"><b>Definition:</b> atca_basic.h:199</div></div>
<div class="ttc" id="a00991_html_ga47cbedeb3c3e9f7cbf2b9433cd60d1aa"><div class="ttname"><a href="a00991.html#ga47cbedeb3c3e9f7cbf2b9433cd60d1aa">atcab_write_pubkey</a></div><div class="ttdeci">ATCA_STATUS atcab_write_pubkey(uint16_t slot, const uint8_t *public_key)</div><div class="ttdoc">Uses the write command to write a public key to a slot in the proper format.</div><div class="ttdef"><b>Definition:</b> atca_basic_write.c:356</div></div>
<div class="ttc" id="a00993_html_gaffe776513b24d84b39af8ab0930fef7f"><div class="ttname"><a href="a00993.html#gaffe776513b24d84b39af8ab0930fef7f">max</a></div><div class="ttdeci">#define max(a, b)</div><div class="ttdef"><b>Definition:</b> hal_linux_kit_cdc.c:50</div></div>
<div class="ttc" id="a00991_html_ga3ce01f02f456c08891ca1d67cd3ed0eb"><div class="ttname"><a href="a00991.html#ga3ce01f02f456c08891ca1d67cd3ed0eb">atcab_read_zone</a></div><div class="ttdeci">ATCA_STATUS atcab_read_zone(uint8_t zone, uint16_t slot, uint8_t block, uint8_t offset, uint8_t *data, uint8_t len)</div><div class="ttdoc">Executes Read command, which reads either 4 or 32 bytes of data from a given slot,...</div><div class="ttdef"><b>Definition:</b> atca_basic_read.c:57</div></div>
<div class="ttc" id="a00991_html_ga2239ae3a87c341a48aa108bd82a58552"><div class="ttname"><a href="a00991.html#ga2239ae3a87c341a48aa108bd82a58552">atcab_nonce_load</a></div><div class="ttdeci">ATCA_STATUS atcab_nonce_load(uint8_t target, const uint8_t *num_in, uint16_t num_in_size)</div><div class="ttdoc">Execute a Nonce command in pass-through mode to load one of the device's internal buffers with a fixe...</div><div class="ttdef"><b>Definition:</b> atca_basic_nonce.c:143</div></div>
<div class="ttc" id="a00991_html_ga5ba49c05f7b3fb5acaf55df993ccd3ee"><div class="ttname"><a href="a00991.html#ga5ba49c05f7b3fb5acaf55df993ccd3ee">atcab_checkmac</a></div><div class="ttdeci">ATCA_STATUS atcab_checkmac(uint8_t mode, uint16_t key_id, const uint8_t *challenge, const uint8_t *response, const uint8_t *other_data)</div><div class="ttdoc">Compares a MAC response with input values.</div><div class="ttdef"><b>Definition:</b> atca_basic_checkmac.c:49</div></div>
<div class="ttc" id="a00991_html_ga114a721517c95d5ba5fcac5b226669d6"><div class="ttname"><a href="a00991.html#ga114a721517c95d5ba5fcac5b226669d6">atcab_challenge</a></div><div class="ttdeci">ATCA_STATUS atcab_challenge(const uint8_t *num_in)</div><div class="ttdoc">Execute a Nonce command in pass-through mode to initialize TempKey to a specified value.</div><div class="ttdef"><b>Definition:</b> atca_basic_nonce.c:186</div></div>
<div class="ttc" id="a00991_html_ga5554940ed4c7c7e28652ce6923cf9314"><div class="ttname"><a href="a00991.html#ga5554940ed4c7c7e28652ce6923cf9314">atcab_aes_gfm</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_gfm(const uint8_t *h, const uint8_t *input, uint8_t *output)</div><div class="ttdoc">Perform a Galois Field Multiply (GFM) operation.</div><div class="ttdef"><b>Definition:</b> atca_basic_aes.c:145</div></div>
<div class="ttc" id="a00991_html_ga8020aa89a5bed09ad35320b78e0fb890"><div class="ttname"><a href="a00991.html#ga8020aa89a5bed09ad35320b78e0fb890">atcab_lock_data_zone</a></div><div class="ttdeci">ATCA_STATUS atcab_lock_data_zone(void)</div><div class="ttdoc">Unconditionally (no CRC required) lock the data zone (slots and OTP).</div><div class="ttdef"><b>Definition:</b> atca_basic_lock.c:109</div></div>
<div class="ttc" id="a00991_html_ga76937b340e59be4dc1a30d8c7b76ebe0"><div class="ttname"><a href="a00991.html#ga76937b340e59be4dc1a30d8c7b76ebe0">atcab_aes_ctr_block</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_ctr_block(atca_aes_ctr_ctx_t *ctx, const uint8_t *input, uint8_t *output)</div><div class="ttdoc">Process a block of data using CTR mode and a key within the ATECC608A device. atcab_aes_ctr_init() or...</div><div class="ttdef"><b>Definition:</b> atca_basic_aes_ctr.c:165</div></div>
<div class="ttc" id="a00991_html_gaf47433a371b9fcb8d65a4214cd9e4fa0"><div class="ttname"><a href="a00991.html#gaf47433a371b9fcb8d65a4214cd9e4fa0">atcab_idle</a></div><div class="ttdeci">ATCA_STATUS atcab_idle(void)</div><div class="ttdoc">idle the CryptoAuth device</div><div class="ttdef"><b>Definition:</b> atca_basic.c:191</div></div>
<div class="ttc" id="a00991_html_ga4bf8b665fe1712626a480742c2daa16b"><div class="ttname"><a href="a00991.html#ga4bf8b665fe1712626a480742c2daa16b">atcab_hw_sha2_256</a></div><div class="ttdeci">ATCA_STATUS atcab_hw_sha2_256(const uint8_t *data, size_t data_size, uint8_t *digest)</div><div class="ttdoc">Use the SHA command to compute a SHA-256 digest.</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:346</div></div>
<div class="ttc" id="a00991_html_gac244b83b061ffd8ae3d59b5f973baa53"><div class="ttname"><a href="a00991.html#gac244b83b061ffd8ae3d59b5f973baa53">atcab_ecdh_tempkey</a></div><div class="ttdeci">ATCA_STATUS atcab_ecdh_tempkey(const uint8_t *public_key, uint8_t *pms)</div><div class="ttdoc">ECDH command with a private key in TempKey and the premaster secret is returned in the clear.</div><div class="ttdef"><b>Definition:</b> atca_basic_ecdh.c:210</div></div>
<div class="ttc" id="a00991_html_ga975f7303086190d3b6f76c367583d622"><div class="ttname"><a href="a00991.html#ga975f7303086190d3b6f76c367583d622">atcab_ecdh_ioenc</a></div><div class="ttdeci">ATCA_STATUS atcab_ecdh_ioenc(uint16_t key_id, const uint8_t *public_key, uint8_t *pms, const uint8_t *io_key)</div><div class="ttdoc">ECDH command with a private key in a slot and the premaster secret is returned encrypted using the IO...</div><div class="ttdef"><b>Definition:</b> atca_basic_ecdh.c:170</div></div>
<div class="ttc" id="a00991_html_gad01e8e785073d8655de9116e7df8e7b5"><div class="ttname"><a href="a00991.html#gad01e8e785073d8655de9116e7df8e7b5">atcab_priv_write</a></div><div class="ttdeci">ATCA_STATUS atcab_priv_write(uint16_t key_id, const uint8_t priv_key[36], uint16_t write_key_id, const uint8_t write_key[32])</div><div class="ttdoc">Executes PrivWrite command, to write externally generated ECC private keys into the device.</div><div class="ttdef"><b>Definition:</b> atca_basic_privwrite.c:51</div></div>
<div class="ttc" id="a00991_html_ga4c1f62e502c168be9261d2af921e78ba"><div class="ttname"><a href="a00991.html#ga4c1f62e502c168be9261d2af921e78ba">atca_hmac_sha256_ctx_t</a></div><div class="ttdeci">atca_sha256_ctx_t atca_hmac_sha256_ctx_t</div><div class="ttdef"><b>Definition:</b> atca_basic.h:204</div></div>
<div class="ttc" id="a01013_html"><div class="ttname"><a href="a01013.html">ATCAIfaceCfg</a></div><div class="ttdef"><b>Definition:</b> atca_iface.h:66</div></div>
<div class="ttc" id="a01073_html_adae27798b73271394b86837502dfd853"><div class="ttname"><a href="a01073.html#adae27798b73271394b86837502dfd853">atca_aes_cmac_ctx::block</a></div><div class="ttdeci">uint8_t block[AES_DATA_SIZE]</div><div class="ttdoc">Unprocessed message storage.</div><div class="ttdef"><b>Definition:</b> atca_basic.h:91</div></div>
<div class="ttc" id="a00991_html_ga617bdbdce7b5736351d93214d44c5b8f"><div class="ttname"><a href="a00991.html#ga617bdbdce7b5736351d93214d44c5b8f">atcab_genkey</a></div><div class="ttdeci">ATCA_STATUS atcab_genkey(uint16_t key_id, uint8_t *public_key)</div><div class="ttdoc">Issues GenKey command, which generates a new random private key in slot and returns the public key.</div><div class="ttdef"><b>Definition:</b> atca_basic_genkey.c:103</div></div>
<div class="ttc" id="a00991_html_ga84506ff4105e63823c99527788d36d52"><div class="ttname"><a href="a00991.html#ga84506ff4105e63823c99527788d36d52">atcab_aes_cmac_init</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_cmac_init(atca_aes_cmac_ctx_t *ctx, uint16_t key_id, uint8_t key_block)</div><div class="ttdoc">Initialize a CMAC calculation using an AES-128 key in the ATECC608A.</div><div class="ttdef"><b>Definition:</b> atca_basic_aes_cmac.c:55</div></div>
<div class="ttc" id="a01069_html"><div class="ttname"><a href="a01069.html">atca_aes_cbc_ctx</a></div><div class="ttdef"><b>Definition:</b> atca_basic.h:76</div></div>
<div class="ttc" id="a00988_html_gafb234ccd6a80d09c0efbe336c2354267"><div class="ttname"><a href="a00988.html#gafb234ccd6a80d09c0efbe336c2354267">ATCADeviceType</a></div><div class="ttdeci">ATCADeviceType</div><div class="ttdoc">The supported Device type in Cryptoauthlib library.</div><div class="ttdef"><b>Definition:</b> atca_devtypes.h:41</div></div>
<div class="ttc" id="a00991_html_ga211c9405bb5049dd4a5da92d25c83f3c"><div class="ttname"><a href="a00991.html#ga211c9405bb5049dd4a5da92d25c83f3c">atcab_ecdh_base</a></div><div class="ttdeci">ATCA_STATUS atcab_ecdh_base(uint8_t mode, uint16_t key_id, const uint8_t *public_key, uint8_t *pms, uint8_t *out_nonce)</div><div class="ttdoc">Base function for generating premaster secret key using ECDH.</div><div class="ttdef"><b>Definition:</b> atca_basic_ecdh.c:53</div></div>
<div class="ttc" id="a00991_html_ga778a262b86fa1f8a38139cbae34376e4"><div class="ttname"><a href="a00991.html#ga778a262b86fa1f8a38139cbae34376e4">atcab_read_enc</a></div><div class="ttdeci">ATCA_STATUS atcab_read_enc(uint16_t key_id, uint8_t block, uint8_t *data, const uint8_t *enc_key, const uint16_t enc_key_id)</div><div class="ttdoc">Executes Read command on a slot configured for encrypted reads and decrypts the data to return it as ...</div><div class="ttdef"><b>Definition:</b> atca_basic_read.c:232</div></div>
<div class="ttc" id="a00991_html_ga70751ea87f2cf913986bc7bca2cc661f"><div class="ttname"><a href="a00991.html#ga70751ea87f2cf913986bc7bca2cc661f">atcab_gendig</a></div><div class="ttdeci">ATCA_STATUS atcab_gendig(uint8_t zone, uint16_t key_id, const uint8_t *other_data, uint8_t other_data_size)</div><div class="ttdoc">Issues a GenDig command, which performs a SHA256 hash on the source data indicated by zone with the c...</div><div class="ttdef"><b>Definition:</b> atca_basic_gendig.c:49</div></div>
<div class="ttc" id="a00991_html_ga69b8282d1b1e0c54b9a7d286fed503b8"><div class="ttname"><a href="a00991.html#ga69b8282d1b1e0c54b9a7d286fed503b8">atcab_sign</a></div><div class="ttdeci">ATCA_STATUS atcab_sign(uint16_t key_id, const uint8_t *msg, uint8_t *signature)</div><div class="ttdoc">Executes Sign command, to sign a 32-byte external message using the private key in the specified slot...</div><div class="ttdef"><b>Definition:</b> atca_basic_sign.c:102</div></div>
<div class="ttc" id="a00991_html_ga74d1db50562642ce511fa7cbd384c2ab"><div class="ttname"><a href="a00991.html#ga74d1db50562642ce511fa7cbd384c2ab">atcab_sha_read_context</a></div><div class="ttdeci">ATCA_STATUS atcab_sha_read_context(uint8_t *context, uint16_t *context_size)</div><div class="ttdoc">Executes SHA command to read the SHA-256 context back. Only for ATECC608A with SHA-256 contexts....</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:170</div></div>
<div class="ttc" id="a01069_html_a2ec310210422989027a46428a61fb1c1"><div class="ttname"><a href="a01069.html#a2ec310210422989027a46428a61fb1c1">atca_aes_cbc_ctx::key_block</a></div><div class="ttdeci">uint8_t key_block</div><div class="ttdoc">Index of the 16-byte block to use within the key location for the actual key.</div><div class="ttdef"><b>Definition:</b> atca_basic.h:79</div></div>
<div class="ttc" id="a00991_html_gae8cc7670847805423ad591985eecd832"><div class="ttname"><a href="a00991.html#gae8cc7670847805423ad591985eecd832">atcab_verify_stored</a></div><div class="ttdeci">ATCA_STATUS atcab_verify_stored(const uint8_t *message, const uint8_t *signature, uint16_t key_id, bool *is_verified)</div><div class="ttdoc">Executes the Verify command, which verifies a signature (ECDSA verify operation) with a public key st...</div><div class="ttdef"><b>Definition:</b> atca_basic_verify.c:344</div></div>
<div class="ttc" id="a01073_html_a9246ae6d7229247b3e9b5e540a26ac05"><div class="ttname"><a href="a01073.html#a9246ae6d7229247b3e9b5e540a26ac05">atca_aes_cmac_ctx::cbc_ctx</a></div><div class="ttdeci">atca_aes_cbc_ctx_t cbc_ctx</div><div class="ttdoc">CBC context.</div><div class="ttdef"><b>Definition:</b> atca_basic.h:89</div></div>
<div class="ttc" id="a01077_html_ab645bb8a04ce16b6ab3c843dd4d1c177"><div class="ttname"><a href="a01077.html#ab645bb8a04ce16b6ab3c843dd4d1c177">atca_aes_ctr_ctx::counter_size</a></div><div class="ttdeci">uint8_t counter_size</div><div class="ttdoc">Size of counter in the initialization vector.</div><div class="ttdef"><b>Definition:</b> atca_basic.h:103</div></div>
<div class="ttc" id="a00991_html_gae0a7ef89fce4cbd0ee1c76759cd93b9a"><div class="ttname"><a href="a00991.html#gae0a7ef89fce4cbd0ee1c76759cd93b9a">atcab_sha_start</a></div><div class="ttdeci">ATCA_STATUS atcab_sha_start(void)</div><div class="ttdoc">Executes SHA command to initialize SHA-256 calculation engine.</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:126</div></div>
<div class="ttc" id="a00991_html_gad3bc620aedd9322d160eece0d8d20c82"><div class="ttname"><a href="a00991.html#gad3bc620aedd9322d160eece0d8d20c82">atcab_wakeup</a></div><div class="ttdeci">ATCA_STATUS atcab_wakeup(void)</div><div class="ttdoc">wakeup the CryptoAuth device</div><div class="ttdef"><b>Definition:</b> atca_basic.c:178</div></div>
<div class="ttc" id="a00991_html_gaa702726fe160635225abc3c1ed421f7e"><div class="ttname"><a href="a00991.html#gaa702726fe160635225abc3c1ed421f7e">atca_aes_cbc_ctx_t</a></div><div class="ttdeci">struct atca_aes_cbc_ctx atca_aes_cbc_ctx_t</div></div>
<div class="ttc" id="a00991_html_gac0be51b283b107465dcf42758ca31687"><div class="ttname"><a href="a00991.html#gac0be51b283b107465dcf42758ca31687">atcab_aes_cmac_finish</a></div><div class="ttdeci">ATCA_STATUS atcab_aes_cmac_finish(atca_aes_cmac_ctx_t *ctx, uint8_t *cmac, uint32_t cmac_size)</div><div class="ttdoc">Finish a CMAC operation returning the CMAC value.</div><div class="ttdef"><b>Definition:</b> atca_basic_aes_cmac.c:156</div></div>
<div class="ttc" id="a01077_html"><div class="ttname"><a href="a01077.html">atca_aes_ctr_ctx</a></div><div class="ttdef"><b>Definition:</b> atca_basic.h:98</div></div>
<div class="ttc" id="a01081_html_a9e3fb1e50a1c71b2337df296222d9553"><div class="ttname"><a href="a01081.html#a9e3fb1e50a1c71b2337df296222d9553">atca_sha256_ctx::block_size</a></div><div class="ttdeci">uint32_t block_size</div><div class="ttdoc">Number of bytes in current block.</div><div class="ttdef"><b>Definition:</b> atca_basic.h:200</div></div>
<div class="ttc" id="a00991_html_gade49e7746864105730fa7d531645ff62"><div class="ttname"><a href="a00991.html#gade49e7746864105730fa7d531645ff62">atcab_hw_sha2_256_init</a></div><div class="ttdeci">ATCA_STATUS atcab_hw_sha2_256_init(atca_sha256_ctx_t *ctx)</div><div class="ttdoc">Initialize a SHA context for performing a hardware SHA-256 operation on a device. Note that only one ...</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:208</div></div>
<div class="ttc" id="a00991_html_gae3343c160e80365b7e96bdfdc9b6365c"><div class="ttname"><a href="a00991.html#gae3343c160e80365b7e96bdfdc9b6365c">atcab_sha_hmac_update</a></div><div class="ttdeci">ATCA_STATUS atcab_sha_hmac_update(atca_hmac_sha256_ctx_t *ctx, const uint8_t *data, size_t data_size)</div><div class="ttdoc">Executes SHA command to add an arbitrary amount of message data to a HMAC/SHA-256 operation.</div><div class="ttdef"><b>Definition:</b> atca_basic_sha.c:394</div></div>
<div class="ttc" id="a00991_html_ga2649126606db8a0b64ae8e19d09f6600"><div class="ttname"><a href="a00991.html#ga2649126606db8a0b64ae8e19d09f6600">atcab_info_set_latch</a></div><div class="ttdeci">ATCA_STATUS atcab_info_set_latch(bool state)</div><div class="ttdoc">Use the Info command to set the persistent latch state for an ATECC608A device.</div><div class="ttdef"><b>Definition:</b> atca_basic_info.c:133</div></div>
<div class="ttc" id="a00991_html_ga8ef47330eef6bc72ae8f7a8ef026dae3"><div class="ttname"><a href="a00991.html#ga8ef47330eef6bc72ae8f7a8ef026dae3">atcab_read_config_zone</a></div><div class="ttdeci">ATCA_STATUS atcab_read_config_zone(uint8_t *config_data)</div><div class="ttdoc">Executes Read command to read the complete device configuration zone.</div><div class="ttdef"><b>Definition:</b> atca_basic_read.c:338</div></div>
<div class="ttc" id="a00991_html_gadb91d2c3601b95f0ad413cf84a4dfd87"><div class="ttname"><a href="a00991.html#gadb91d2c3601b95f0ad413cf84a4dfd87">atcab_cmp_config_zone</a></div><div class="ttdeci">ATCA_STATUS atcab_cmp_config_zone(uint8_t *config_data, bool *same_config)</div><div class="ttdoc">Compares a specified configuration zone with the configuration zone currently on the device.</div><div class="ttdef"><b>Definition:</b> atca_basic_read.c:386</div></div>
<div class="ttc" id="a00991_html_gaf8e10791759a8a5e5dcd82774f4895d6"><div class="ttname"><a href="a00991.html#gaf8e10791759a8a5e5dcd82774f4895d6">atcab_nonce_base</a></div><div class="ttdeci">ATCA_STATUS atcab_nonce_base(uint8_t mode, uint16_t zero, const uint8_t *num_in, uint8_t *rand_out)</div><div class="ttdoc">Executes Nonce command, which loads a random or fixed nonce/data into the device for use by subsequen...</div><div class="ttdef"><b>Definition:</b> atca_basic_nonce.c:57</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_97aefd0d527b934f1d99a682da8fe6a9.html">lib</a></li><li class="navelem"><a class="el" href="dir_f987fb6e7cf85d8e48d70ffe78b3ebc1.html">basic</a></li><li class="navelem"><a class="el" href="a00224.html">atca_basic.h</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>
